<?php

/**
 * FormErrors
 * 
 * Этот кусок кода повторяется в каждой форме, 
 * и потому, я решил вынести его в отдельный хэлпер.
 * Хэлпер, собственно, показывает ошибки в форме. 
 * Не путать с переводчиком ошибок и декоратором ошибок.
 * 
 * @author Игорь Будасов aka Lord <igor.budasov@gmail.com>
 */
 
class Lord_Action_Helper_FormErrors extends Zend_Controller_Action_Helper_Abstract
{
		
/*------------------------------------------------------------------------------*/

	/**
	* Метод используется только лишь для вызова целевого метода
	* 
	* @param array            $errors
	* @param Zend_Form object $form
	*/
	
	public function direct($errors, $form)
	{         
		return $this->target($errors, $form);
	}
	
/*------------------------------------------------------------------------------*/	

	/**
	* Целевой метод. Он-то и делает всю работу
	*/
	
	public function target($errors, $form)
	{   
		// Получаем объект  вида
		$view  = Zend_Registry::get('smarty');
		   
		if(!empty($errors))
		{          
			foreach($errors as $k=>$v)
			{           
				if(count($errors[$k]) > 0)  
				{   
					foreach($errors[$k] as $key=>$val)
					{    
						$element = $form->getElement($k);
						$element = $element->addError($errors[$k][$key]);    
					}
				}
			}
		}
	}
	
/*------------------------------------------------------------------------------*/	
}
